﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using QLTH_DTO;
namespace QLTH_DATASSECC
{
   public class clsPhanLopHSDA: ConnectionData.clsKetNoi
    {

       String _sql;

       //Load danh sách học sinh chưa phân lớp đầu năm
       public DataTable DanhSachHocSinh_ChuaCoLop()
       {
          // _sql = "select  CAST(0 AS BIT) AS  TT,  hs.MAHS, (hs.HOLOTHS+' '+hs.TENHS) as HOTEN,(case when hs.PHAI = 0 then 'Nam' else N'Nữ' end) as GIOITINH, hs.NGAYSINH from HOCSINH hs EXCEPT  select  CAST(0 AS BIT) AS  TT,  pl.MAHS, (hs.HOLOTHS+''+hs.TENHS) as HOTEN,(case when hs.PHAI = 0 then 'Nam' else N'Nữ' end) as GIOITINH, hs.NGAYSINH from HOCSINH hs, PHANLOP pl";
           _sql = "select  CAST(0 AS BIT) AS  TT,  hs.MAHS, (hs.HOLOTHS+' '+hs.TENHS) as HOTEN,(case when hs.PHAI = 0 then 'Nam' else N'Nữ' end) as GIOITINH, hs.NGAYSINH from HOCSINH hs EXCEPT select  CAST(0 AS BIT) AS  TT,  pl.MAHS, (hs.HOLOTHS+' '+hs.TENHS) as HOTEN,(case when hs.PHAI = 0 then 'Nam' else N'Nữ' end) as GIOITINH, hs.NGAYSINH from HOCSINH hs inner join PHANLOP pl on hs.MAHS = pl.MAHS";
           return Load_DataTable(_sql);
       }

       //Load danh sách học sinh trong lớp thuộc khối của GRID CŨ VÀ GRID MỚI
       public DataTable DanhSachHocSinh_DaPhanLop(String _manh, String _makhoi, String _malop)
       {
          _sql = "select cast (0 as bit) as TT,pl.MAHS, (hs.HOLOTHS+' '+hs.TENHS) as HOTEN, (case when hs.PHAI='0' then 'Nam' else N'Nữ' end) as GIOITINH, hs.NGAYSINH from HOCSINH hs inner join PHANLOP pl on hs.MAHS=pl.MAHS inner join LOPHOC lh on pl.MALOP=lh.MALOP inner join KHOI kh on lh.MAKHOI=kh.MAKHOI inner join NAMHOC nh on lh.MANH=nh.MANH where  lh.MANH='"+_manh+"' and lh.MAKHOI='"+_makhoi+"' and pl.MALOP='"+_malop+"'";
           return Load_DataTable(_sql);
       }

       //Load danh sách lớp theo khối và năm học
       public DataTable DanhSachLop_TheoKhoi_NamHoc(String _manh, String _makhoi)
       {
           _sql = "select lh.MALOP, lh.TENLOP FROM LOPHOC lh where  lh.MANH='" + _manh + "' and lh.MAKHOI='" + _makhoi + "' ";
           return Load_DataTable(_sql);
       }
       ///////////////////////////////// PHÂN LỚP HOC SINH ĐÃ CÓ HỒ SƠ
       //Load danh sách học sinh lớp cũ
       public DataTable DanhSachHS_LopCu()
       {
           _sql = "select  CAST(0 AS BIT) AS  TT,  pl.MAHS, (hs.HOLOTHS+' '+hs.TENHS) as HOTEN,(case when hs.PHAI = 0 then 'Nam' else N'Nữ' end) as GIOITINH, hs.NGAYSINH from HOCSINH hs inner join PHANLOP pl on hs.MAHS = pl.MAHS";
           return Load_DataTable(_sql);
       }

       //Load danh sách học sinh còn lại ở grid cũ
       public DataTable DanhSachHS_ConLai(String _manhcu, String _makhoicu, String _malopcu, String _manhmoi, String _makhoimoi, String _malopmoi)
       {
           _sql = "select cast (0 as bit) as TT,pl.MAHS, (hs.HOLOTHS+' '+hs.TENHS) as HOTEN, (case when hs.PHAI='0' then 'Nam' else N'Nữ' end) as GIOITINH, hs.NGAYSINH from HOCSINH hs inner join PHANLOP pl on hs.MAHS=pl.MAHS inner join LOPHOC lh on pl.MALOP=lh.MALOP inner join KHOI kh on lh.MAKHOI=kh.MAKHOI inner join NAMHOC nh on lh.MANH=nh.MANH where lh.MANH='"+_manhcu+"' and lh.MAKHOI='"+_makhoicu+"' and pl.MALOP='"+_malopcu+"' except select cast (0 as bit) as TT,pl.MAHS, (hs.HOLOTHS+' '+hs.TENHS) as HOTEN, (case when hs.PHAI='0' then 'Nam' else N'Nữ' end) as GIOITINH, hs.NGAYSINH from HOCSINH hs inner join PHANLOP pl on hs.MAHS=pl.MAHS inner join LOPHOC lh on pl.MALOP=lh.MALOP inner join KHOI kh on lh.MAKHOI=kh.MAKHOI inner join NAMHOC nh on lh.MANH=nh.MANH"
                        +" where lh.MANH='"+_manhmoi+"' and lh.MAKHOI='"+_makhoimoi+"' and pl.MALOP='"+_malopmoi+"'";
           return Load_DataTable(_sql);
       }

       //Thêm hồ sơ hs chưa phân lớp vào lớp
       public int PhanLop_HS_DauNam(clsPhanLopHSDTO pldto)
       {
           int nameparam = 3;
           String[] name = new String[nameparam];
           Object[] values = new Object[nameparam];
           name[0] = "@Malop"; values[0] = pldto.Lop.Malop;
           name[1] = "@Mahs"; values[1] = pldto.Mahs;
           name[2] = "@Siso"; values[2] = "30";
           _sql = "INSERT INTO PHANLOP VALUES(@Malop, @Mahs, @Siso)";
           return Nonquery(_sql, name, values, nameparam);
        
       }

       //Xóa học sinh đã phân lớp trở về danh sách cũ
       public int ChuyenHSVe_DSCu(clsPhanLopHSDTO pldto)
       {
           int nameparam = 3;
           String[] name = new String[nameparam];
           Object[] values = new Object[nameparam];
           name[0] = "@Mahs"; values[0] = pldto.Mahs;
           _sql = "DELETE PHANLOP WHERE MAHS= @Mahs";
           return Nonquery(_sql, name, values, nameparam);
       }
       
       //Xóa học sinh từ lớp mới
       public int XoaHS_LopMoi(clsPhanLopHSDTO pldto)
       {
           int nameparam = 3;
           String[] name = new String[nameparam];
           Object[] values = new Object[nameparam];
           name[0] = "@Mahs"; values[0] = pldto.Mahs;
           name[1]="@Malop"; values[1]=pldto.Lop.Malop;
           _sql = "DELETE PHANLOP WHERE MAHS= @Mahs and MALOP =@Malop";
           return Nonquery(_sql, name, values, nameparam); 
       }

    }
}
